/*
	功能：每日任务 - 环任务20次
	备注：任务初始ID 100100，子任务依次加1，新任务分类的初始ID需间隔100，如100200
*/


var status = 0;
var text = "";
var questid = 100100;
var questName = "跑环";
var maxtimes = 20;
var playerid = 0;
var accepttimes = 0;
var questitemid = 0;
var questitemcs = 0;
var hitemid = 0;
var hitemcs = 0;
var questitems = Array(
	Array(4000000, -1, "蓝色蜗牛的壳."), // 蓝色蜗牛壳 - 蓝色蜗牛的壳.
	Array(4000269, -1, "听说有人在#r蓝飞龙#k身上见到过这种东西"),  //飞龙的腮
	Array(4000268, -1, "听说有人在#r红飞龙#k身上见到过这种东西"), // 飞龙的翅膀 - 红飞龙的红色翅膀
	Array(4000270, -1, "听说有人在#r黑飞龙#k身上见到过这种东西"), // 飞龙的指甲 - 附在黑飞龙翅膀两端的尖锐指甲
//	Array(4000189, -1, "听说在#r上海北部小山#k有人看到山羊出没"),// - 山羊角 - 山羊的角，不那么锋利，但有点危险。
//	Array(4000194, -1, "听说在#r上海郊外#k有人看到山羊出没"), // 黑羊毛 - 黑绵羊的毛，有点粗糙。
//	Array(4000187, -1, "听说在#r上海郊外#k有很多农场，你到那儿或许会有所发现"), // 鸡爪 - 斗鸡的脚,可以交换玉米或糖葫芦
//	Array(4000188, -1, "听说在#r上海郊外#k有很多农场，你到那儿或许会有所发现"), // 鸭蛋 - 大头鸭的蛋,可以交换玉米或糖葫芦 
	
	                                                                         
	
	Array(4000672, -1, "听说在#r石人寺院#k有很多石头人，你到那儿或许会有所发现"),//石头
	
	
	Array(4000157, -1, "听说在#r水下城市》西海叉路#k有很多海豹，你到那儿或许会有所发现"),//海豹肉 
	Array(4000179, -1, "听说在#r水下城市》深海峡谷I#k有很多刺鳍鱼，你到那儿或许会有所发现"),//刺鳍鱼   
	Array(4000180, -1, "听说在#r水下城市》受难船墓地#k有很多鲨鱼，你到那儿或许会有所发现"),//鲨鱼假牙        
	
	Array(4000444, -1, "听说在#r时间领主》追忆之路I#k有很多祭司，你到那儿或许会有所发现"),//绿色衣襟      
	Array(4000447, -1, "听说在#r时间领主》追忆之路III#k有很多祭司，你到那儿或许会有所发现"),//绿色头盔        
	
	
	
//	Array(4000252, -1, "听说在#r上海郊外#k有很多农场，你到那儿或许会有所发现"), // 鸡肉 - 鸡毛都退掉的整理好的鸡肉
	//Array(4001017, 1, "到#r杂货店#k里买一个给我吧"), // 火焰的眼 - 把被封印的扎昆树的种子人工制作的。用于扎昆祭坛祭物的材料。
	//Array(4001242, 1, "去吧，去击败#r心疤狮王#k"), // 心疤狮王足 - 心疤狮王神的脚。
	//Array(4000021, -1, "也许你可以想想#r火野猪#k什么的"), // 动物皮 - 是动物的外皮.
	//Array(4000052, -1, "在#r冰封雪域#k有人看见过这种东西"), // 白狼之尾 - 白狼的尾，由白色软毛构成.
	//Array(4000232, -1, "听说这是#r火焰半人马#k之力量的来源"), // 半人马的火花 - 火焰半人马之力量的来源。
	//Array(4000233, -1, "听说这是#r寒冰半人马#k之力量的来源"), // 半人马的净水 - 寒冰半人马之力量的来源。
	//Array(4000234, -1, "听说这是#r暗黑半人马#k之力量的来源"), // 半人马的骨头 - 暗黑半人马之力量的来源。
	//Array(4000238, -1, "听说这是#r哈维#k身上掉下的尾羽毛") // 哈维羽毛 - 哈维身上掉下的尾羽毛。外观很美，用于装饰品。
	//Array(4000239, -1, "听说这是#r血腥哈维#k带着的王冠"), // 血腥哈维的王冠 - 血腥哈维带着的王冠。颜色显得十分的鲜艳。
	//Array(4001241, 1, "击败#r暴力熊#k，或许你能获取到它的熊足"), // 暴力熊足 - 暴力熊神的脚。
	//Array(4160000, 1, "或许你可以到#r宠物饲料商#k那儿去看看。"), // 宠物指令：小狗系列 // 记载着可对小狗使用的指令说明书。\n#c快速双击该道具，便可开启书本。#
	//Array(4160001, 1, "或许你可以到#r宠物饲料商#k那儿去看看。"), // 宠物指令：小猫系列 // 记载着可对小猫使用的指令说明书。\n#c快速双击该道具，便可开启书本。#
	//Array(4160002, 1, "或许你可以到#r宠物饲料商#k那儿去看看。"), // 宠物指令：兔子系列 // 记载着可对兔子使用的指令说明书。\n#c快速双击该道具，便可开启书本。#
	//Array(4160003, 1, "或许你可以到#r宠物饲料商#k那儿去看看。"), // 宠物指令：小怪猫 // 记载着可对小怪猫使用的指令说明书。\n#c快速双击该道具，便可开启书本。#
	//Array(4160004, 1, "或许你可以到#r宠物饲料商#k那儿去看看。"), // 宠物指令：雪犬 // 记载着可对雪犬使用的指令说明书。\n#c快速双击该道具，便可开启书本。#
	//Array(4160005, 1, "或许你可以到#r宠物饲料商#k那儿去看看。"), // 宠物指令：黑小猪 // 记载着可对黑小猪使用的指令说明书。\n#c快速双击该道具，便可开启书本。#
	Array(4160006, 1, "或许你可以到#r宠物饲料商#k那儿去看看。"), // 宠物指令：好 // 记载着可对好使用的指令说明书。\n#c快速双击该道具，便可开启书本。#
	Array(4160007, 1, "或许你可以到#r宠物饲料商#k那儿去看看。"), // 宠物指令：恐龙 // 记载着可对恐龙使用的指令说明书。\n#c快速双击该道具，便可开启书本。#
	Array(4160008, 1, "或许你可以到#r宠物饲料商#k那儿去看看。"), // 宠物指令：云豹 // 记载着可对云豹使用的指令说明书。\n#c快速双击该道具，便可开启书本。#
	Array(4160009, 1, "或许你可以到#r宠物饲料商#k那儿去看看。"), // 宠物指令：圣诞鹿 // 记载着可对圣诞鹿使用的指令说明书。\n#c快速双击该道具，便可开启书本。#
	Array(4160010, 1, "或许你可以到#r宠物饲料商#k那儿去看看。"), // 宠物指令：猴子 // 记载着可对猴子使用的指令说明书。\n#c快速双击该道具，便可开启书本。#
	//Array(4160011, 1, "或许你可以到#r宠物饲料商#k那儿去看看。"), // 宠物能力值转移卷轴 // 记载着可转移宠物能力值的卷轴。\n#c快速双击该道具，便可知道详细内容。#
	Array(4160012, 1, "或许你可以到#r宠物饲料商#k那儿去看看。"), // 宠物指令：小白雪人 // 记载着可对小白雪人使用的指令说明书。\n#c快速双击该道具，便可开启书本。#
	Array(4160013, 1, "或许你可以到#r宠物饲料商#k那儿去看看。"), // 宠物指令：小白虎 // 记载着可对小白虎使用的指令说明书。\n#c快速双击该道具，便可开启书本。#
	Array(4160014, 1, "或许你可以到#r宠物饲料商#k那儿去看看。"), // 宠物指令：小企企 // 记载着可对小企企使用的指令说明书。\n#c快速双击该道具，便可开启书本。#
	Array(4160015, 1, "或许你可以到#r宠物饲料商#k那儿去看看。"), // 宠物指令：蝙蝠怪 // 记载着可对蝙蝠怪使用的指令说明书。\n#c快速双击该道具，便可开启书本。#
	//Array(3010001, 1, "或许你可以到#r明珠港#k看一看，那儿似乎有卖。"), // 蓝色木椅 - 只有在明珠港制作贩卖的蓝色木椅。坐在上面每10秒可恢复HP 35
	Array(2000000, -1, "各大药房均有销售。"), // 红色药水 - 红色药草研磨作成的药水.\n恢复HP约50.
	Array(2000001, -1, "各大药房均有销售。"), // 橙色药水 - 红色药草精炼而成的浓缩药水.\n恢复HP约150.
	Array(2000002, -1, "各大药房均有销售。"), // 白色药水 - 红色药草精炼而成的高级浓缩药水.\n恢复HP约300.
	Array(2000003, -1, "各大药房均有销售。"), // 蓝色药水 - 青色药草研磨作成的药水.\n恢复MP约100.
	Array(2000004, -1, "各大药房均有销售。"), // 特殊药水 - 传说中的秘药。\n使HP、MP恢复约50%。但最大HP、MP超过99,999时，HP、MP恢复49,999。
	Array(2000005, -1, "各大药房均有销售。"), // 超级药水 - 传说中的秘药。\n使HP、MP全部恢复。但最大HP、MP超过99,999时，HP、MP恢复99,999。
	Array(2000006, -1, "各大药房均有销售。") // 活力神水 - 传说中的秘药.\n恢复MP约300.
	////Array(2000007, -1, "各大药房均有销售。"), // 红色药丸 - 用红色药水做的药丸。 HP恢复50。因为体积小，能带更多药
	////Array(2000008, -1, "各大药房均有销售。") // 橙色药丸 - 用橙色药水做的药丸。 HP恢复150。因为体积小，能带更多药
//	Array(-1,-1, "我想我需要买一些东西慰劳自己。"), //游戏币
//	Array(-2,-1,"我想我需要买一些东西慰劳自己。") //抵用卷
);

function start () {
	status = -1;
	action(1, 0, 0);
}


function action (mode, type, selection) {
	if (mode == -1) {
		cm.dispose();
	} else {
		if (mode == 1) {
			status++;
		} else {
			status--;
		}

		if (status == -1) {
			cm.dispose();
		} else if (status == 0) {
			playerid = cm.getPlayer().getId();
			accepttimes = maxtimes - cm.getEventCount("每日跑环");
			text = "\t\t\t\t#e日常任务 - 月枫的需求#n\r\n\r\n  您今日可再接取次数：#r" + (accepttimes) + "#k 次已经跑了"+cm.getEventCount("每日跑环")+"次\r\n  完成每环任务会获得如下奖励：\r\n\t#e#r200点抵用券、10000破功上限、"+cm.getChar().getLevel()+"点卷,大量游戏经验#n#k\r\n\t#k每#r5、10、15、20#k环为#b双倍奖励#k，并有几率获得#b祖母绿抽奖宝箱#k一个！\r\n#k";
			
			if(getStatus(getAccountName(cm.getPlayer().getId()),"每日跑环")=="true"){// 判断是否接取了任务  
				 
					var items = rw(getAccountName(cm.getPlayer().getId()),'每日跑环');
					hitemid = parseInt(items.split(',')[0]);
					hitemcs = parseInt(items.split(',')[1]);
					text += "#e  您当前第#r" +accepttimes + "#k环  收集 #r#z" + hitemid + "# " + hitemcs + "#k个#n\r\n\r\n\r\n";
					if (cm.haveItem(hitemid, hitemcs)) {	// 判断是否满足任务条件
						text += "#b#L1#完成任务#l\r\n";
					} else {
						text += "怎么了？还没找到我要的东西吗？\r\n\r\n";
					}
					text += "#r#L2#放弃任务 (无法获得任何奖励，且会消耗一次任务次数)#l\r\n";
				 
			} else {
					if (accepttimes <= 0) { // 判断是否超过完成次数
						text += "您已经完成了今天的任务，请明天0点后再来吧~";   
						cm.sendOk(text);     
						return;
					} else {
						text += "#b#L3#接受任务#l\r\n";
					}
			}
			cm.sendSimple(text);
		} else if (status == 1) {
			if (selection == 0) {			// 重新接受任务 初始化
				var questrandid = Math.floor(Math.random()*questitems.length);
				questitemid = questitems[questrandid][0];	// 任务道具ID
				if (questitems[questrandid][1] < 0) { 
					questitemcs = Math.floor(Math.random()*50) + 50 + Math.floor(Math.random()*cm.getReborns());	// 任务道具数量
				} else {
					questitemcs = questitems[questrandid][1];
				}
				text = "#e第#r" + (accepttimes + 1) + "#k环：#n\r\n\r\n请帮我找到#b"+questitemcs+"#k个#r#z" + questitemid + "##k\r\n"+questitems[questrandid][2]+"\r\n#k感激不尽，快去快回~";
				insRW("每日跑环",cm,questitemid,questitemcs);//插入
				cm.setEventCount("每日跑环")
				cm.sendOk(text);
				cm.dispose();
			} else if (selection == 1) {	// 完成任务
				delRW(cm);
				//经验值奖励
				var baseExp = 0.02;
				if (cm.getPlayer().getLevel() > 220 )
					baseExp = 0.01;
				else if (cm.getPlayer().getLevel() > 240) 
					baseExp = 0.001;
				var calcExp = Math.floor(cm.getPlayer().getExpNeededForLevel()*baseExp)+Math.floor(Math.random()*1000000+1000000);
				if (!((accepttimes+1)%5)) {
					calcExp*=2;
					var expNum = 1;
					var lastExp = 0;
					//如果经验超过21E
					if (calcExp>=2147483647) {
						//计算分成几次
						expNum = Math.floor((calcExp / 2147483647));
						//计算余数
						lastExp = Math.floor((calcExp % 2147483647));
						//根据计算次数多次给予经验
						for(var i = 0; i<expNum; i++) {
							cm.gainExp(2147483647);
						}
						//给予余数经验
						cm.gainExp(lastExp);
					} else {
						cm.gainExp(calcExp);
					}
					if (cm.getEventCount("月枫的需求"+(accepttimes+1))<1){
						cm.gainNX(2, 2000);
						cm.setEventCount("月枫的需求"+(accepttimes+1));
					}
					if (Math.round(Math.random()*1)) {
						cm.gainItem(2430069, 1);
						cm.worldSpouseMessage(0x05, "[月枫的需求]" + " : " + "真是好运，玩家【" + cm.getChar().getName() + "】获得了一个祖母绿抽奖箱。");
					}
				} else {
					var expNum = 1;
					var lastExp = 0;
					if (calcExp>=2147483647) {
						expNum = Math.floor((calcExp / 2147483647));
						lastExp = Math.floor((calcExp % 2147483647));
						for(var i = 0; i<expNum; i++) {
							cm.gainExp(2147483647);
						}
						cm.gainExp(lastExp);
					} else {
						cm.gainExp(calcExp);
					}
					if (cm.getEventCount("月枫的需求"+(accepttimes+1))<1){
						cm.gainNX(2, 200);
						cm.setEventCount("月枫的需求"+(accepttimes+1));
					}
				}	
				cm.gainItem(hitemid, -hitemcs);
				text = "恭喜您完成了任务,武器突破上限增加10000~~";
				cm.sendOk(text);
				cm.gainNX(1, cm.getChar().getLevel());
				cm.setPQLog("糖果点",1,1);
				if (cm.WeaponLimitBreak(10000)) {
			   cm.worldSpouseMessage(0x05,"[伤害突破] 玩家 "+ cm.getChar().getName() +" 完成跑环任务 获得点卷 ["+cm.getChar().getLevel()+"]点 突破成功 本次追加 10000 伤害值。额外获得+1糖果点");
				}else{
	    			    cm.sendOk("#b突破失败.\r\n系统为检测到角色身上装备武器.");
				}
				cm.dispose();
			} else if (selection == 2) {	// 放弃任务
				delRW(cm);
				text = "任务已放弃……";
				cm.sendOk(text);
				cm.dispose();
			} else if (selection == 3) {	// 接受任务
				if(cm.getEventCount("每日跑环")<=20){
					var questrandid = Math.floor(Math.random()*questitems.length);
					questitemid = questitems[questrandid][0];	// 任务道具ID
					if (questitems[questrandid][1] < 0) { 
						questitemcs = Math.floor(Math.random()*20) + 20 + Math.floor(Math.random()*10);	// 任务道具数量
					} else {
						questitemcs = questitems[questrandid][1];
					}
					text = "#e第#r" + cm.getEventCount("每日跑环") + "#k环：#n\r\n\r\n请帮我找到#b"+questitemcs+"#k个#r#z" + questitemid + "##k\r\n"+questitems[questrandid][2]+"\r\n#k快去快回~";
					insRW("每日跑环",cm,questitemid,questitemcs);
					cm.setEventCount("每日跑环");
					cm.sendOk(text);
					cm.dispose();
				}else{
					cm.sendOk("该账号已经完成了20次跑环!");
					cm.dispose();
				}
			}
		}
	}
}



function getAccountName(charid) {
	var sql = "select name from accounts where id = (select accountid from characters where id = "+charid+");";
	var accountQuery = cm.getConnection().prepareStatement(sql).executeQuery();
	var accountName = null;
	if (accountQuery.next())
	accountName = accountQuery.getString("name");
	accountQuery.close();
	return accountName;
}

function rw(acct,rwname){
    var sql =  "SELECT rwname,rwstatus,rwitem1,rwitem2,rwnum1,rwnum2 from rw a where a.`accounts` =? and rwname = ?";
    var conn = cm.getConnection();
    var pstmt = conn.prepareStatement(sql);
    pstmt.setString(1, acct);
    pstmt.setString(2, rwname);
    var payRanking = pstmt.executeQuery();
    var ret;
    var rwitem1="";
    var rwnum1="";
    while(payRanking.next()) { 
    	ret = payRanking.getString("rwitem1") +","+payRanking.getString("rwnum1");
    } 
    payRanking.close();
    pstmt.close();	
		return ret;
}


function getStatus(acct,rwname){
    var sql =  "SELECT  rwstatus from rw a where a.`accounts` =? and rwname = ?";
    var conn = cm.getConnection();
    var pstmt = conn.prepareStatement(sql);
    pstmt.setString(1, acct);
    pstmt.setString(2, rwname);
    var payRanking = pstmt.executeQuery();
    var ret;
    var rwitem1="";
    var rwnum1="";
    while(payRanking.next()) { 
    	ret = payRanking.getString("rwstatus");
    } 
    payRanking.close();
    pstmt.close();	
		return ret;
}


function insRW(rwname,cm,itemid,num){
	var sql = "insert into rw(rwname,rwstatus,rwitem1,rwitem2,rwnum1,rwnum2,accounts) values(?,?,?,?,?,?,?)";
	var db = cm.getConnection();
	var pstmt = db.prepareStatement(sql); 
	var myAccountName =getAccountName(cm.getPlayer().getId());
		pstmt.setString(1, rwname);
		pstmt.setString(2, 'true'); 
		pstmt.setInt(3, itemid);
		pstmt.setInt(4, 0);
		pstmt.setInt(5, num);
		pstmt.setInt(6, 0);
		pstmt.setString(7, myAccountName);
	pstmt.executeUpdate();
	pstmt.close(); 
	db.close();
}



function delRW(cm){
	var sql = "delete from rw where accounts = ? and rwname ='每日跑环'";
	var db = cm.getConnection();
	var pstmt = db.prepareStatement(sql);
	pstmt.setString(1, getAccountName(cm.getPlayer().getId()));
	var result = false;
	if (pstmt.executeUpdate()) {
		result = true;
	}
	pstmt.close();
	db.close();
	return result;
}
